Hace algún tiempo leí un artículo interesante de un “ataque exitoso” contra AES, el famoso algoritmo de criptografía simétrica. Raphael C.-W. Phan [1] presentó un “impossible differential attack” a 7 rondas para AES-192 y AES-256. Algunos se preguntarán: que tipo de ataque es este?, pues bien, es un criptoanálisis que se aprovecha de las diferencias que son imposible de darse, de un bloque de datos a través del cifrado, con la finalidad de descubrir la clave. Sin entrar en muchos detalles del método utilizado, a continuación comento algunos de los resultados más importantes de dicho estudio.

El ataque consiste en tomar parejas de textos idénticos en todos los bytes excepto en uno y comenzar a cifrar dichos textos, luego, se analizan los datos producidos a las salidas de cada una de las rondas con la finalidad de observar la evolución de la información durante el proceso de cifrado. Con esta información se van asignando las probabilidades para las claves imposibles o de probabilidad de 0.

El ataque se basa en el algoritmo expuesto en [1], que es utilizado para romper AES-192 y AES-256, consta de 9 pasos a seguir y se concentra en el sistema de expansión de claves. El algoritmo permite realizar ciertos cálculos y asignar probabilidades en el momento que se ha determinado alguna de las subclaves. En resumen, el autor espera determinar la clave en la séptima ronda, con el modelo matemático expuesto en dicho estudio, mediante la observación de los movimientos realizados por las diferentes transformaciones.

Resumiendo los resultados obtenidos en [1], para el caso de AES-192, se requirió de 292 textos en claro, 2153 palabras de memoria y 2186 encripciones, para el caso de AES-256 los textos en claro fueron 292,5, el mismo espacio de memoria 2153 y 2250,5 encripciones. La Tabla # 1 muestra una comparación entre los resultados presentados por [1] y otros dos ataques anteriores con menor cantidad de rondas.

 

Tabla # 1: Comparación de los resultados a ataques a AES [1].

 

Dejando de lado el proceso como tal, y analizando los resultados obtenidos en dicho ataque, se puede apreciar que para romper el algoritmo se han necesitado 2186 y 2250,5 encripciones para AES-192 y AES-256 respectivamente. Si se toma en cuenta que una búsqueda exhaustiva de clave hubiera tomado 2192 y 2256 para cada uno de los algoritmos respectivamente, se podría decir que el ataque presentado por [1] ha sido exitoso.

Ahora, es importante aclarar que se trata de un ataque a rondas reducidas (7 rondas) y que AES puede tener una longitud de clave de 128, 192 o 256 bits según sea el caso, para la cantidad de rondas estándar: 10, 12 y 14 respectivamente. Esto significa, que pese al ataque exitoso que se presenta, AES mantiene un margen de seguridad bastante amplio con respecto a este estudio, porque hay 5 rondas de diferencia (para AES-192) y por lo tanto, la complejidad para descifrar un paquete de información se incrementa al aplicar la cantidad de vueltas que define el estándar.

 

Referencias

  1. Raphael CP. Impossible differential cryptanalysis of 7-round Advanced Encryption Standard (AES). Information Processing Letters (2004) 91: pp. 33-38.

En la I Parte de Generalidades de AES (Advanced Encryption Standard) se describieron los aspectos más relevantes de AES y las S-Box. Ahora, comentaremos algunos detalles de las llamadas transformaciones (ByteSub, ShiftRow, MixColumns y AddRoundKey) y el proceso de generación de subclaves. Para ver más detalles de una manera más dinámica se recomienda la aplicación Rijndael Animation.

 

ByteSub

Esta transformación realiza una sustitución byte por byte en cada uno de los elementos de la matriz de estado, es decir, la matriz de estado [aij] se sustituye por la matriz [Sij], la Figura # 1 muestra dicho proceso. Utilizando la aplicación Rijndael Animation de [1], se puede observar como el primer byte de la matriz de estado ([a00]) se divide en dos grupos de cuatro bits cada uno y se utilizan como apuntadores a filas y columnas de la S-Box, respectivamente, para realizar la sustitución, en la Figura # 1 se muestra como el valor 19 será reemplazado por d4.

 

Figura # 1: Utilización de S-Box [1].

El algoritmo AES (Advanced Encryption Standard) [1], conocido como Rijndael, fue nombrado así por sus creadores Joan Daemen y Vincent Rijmen, es el actual estándar internacional de cifrado para comunicaciones desde octubre del 2000. Dicho algoritmo se caracteriza por ser un cifrado simétrico por bloques con longitud de clave variable; la longitud de la clave por defecto es de 128 bits pero también puede establecerse a 192 o 256 bits.

La criptografía simétrica, o también llamada criptografía de clave secreta, es un método criptográfico que utiliza la misma clave para cifrar como para descifrar, es decir, que la seguridad del algoritmo se basa en la clave y no en el algoritmo. Algunos ejemplos de algoritmos criptográficos de este tipo son: AES, DES, 3DES y RC5.